﻿using RndMaterialDisposalService.Models;
using RndMaterialDisposalService.Models.RequestModel;

namespace RndMaterialDisposalService.Services.Interface.TemporaryDocument
{
    public interface ITemporaryProcessDocumentService
    {
        /// <summary>
        /// 返回临时工艺文件下发单报表数据（带分页）
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        List<TemporaryProcessDocumentReportFormModel> GetTemporaryProcessDocumentReportFormPageList(TemporaryProcessDocumentReportConditionModel input);

        /// <summary>
        ///返回临时工艺文件下发单报表主数据
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        List<TemporaryProcessDocumentReportFormModel> GetTemporaryProcessDocumentReportFormData(TemporaryProcessDocumentReportConditionModel input);

        /// <summary>
        /// 新增临时工艺文件下发单业务数据
        /// </summary>
        /// <param name="temporaryProcessDocument"></param>
        /// <returns></returns>
        Task<int> AddTemporaryProcessDocumentBusinessData(TemporaryProcessDocumentBusinessDataModel temporaryProcessDocument);

        /// <summary>
        /// 批量判断工艺文件是否失效，失效则修改为失效状态
        /// </summary>
        /// <returns></returns>
        Task<bool> EditTemporaryEffectivenessTypeList();

        /// <summary>
        /// 提前失效
        /// </summary>
        /// <param name="ProcInstId"></param>
        /// <returns></returns>
        Task<int> EditTemporaryEffectivenessType(FallimentoPrecoceModel item);

        /// <summary>
        /// 根据流程实例ID返回用户邮箱
        /// </summary>
        /// <param name="Input"></param>
        /// <returns></returns>
        Task<List<DistributeFilesEmail>> GetUserEmailList(TemporaryProcessDocumentProcessProcInstIdModel Input);

        /// <summary>
        /// 临时工艺文件下发回收闭环栏环节为审批通过，但已失效则发送邮件通知
        /// </summary>
        /// <returns></returns>
        Task<bool> ProcessIncompleteAndIneffective();
    }
}
